#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include "logindialog.h"
#include "chatdialog.h"
#include "backgroundthread.h"
#include "chatservice.h"
#include <QFile>
#include <QThread>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    //接受登录界面从服务器获取的用户信息，准备启动聊天系统
    void fromLoginDialog_slot_login_login_finish(QJsonObject userData);
    void requestImageMsg(QString imageName);//请求聊天图片资源
    void showChatUi();
private:
    Ui::MainWindow *ui;

    LoginDialog *_login_dlg = nullptr;//登录界面
    ChatDialog *_chat_dlg = nullptr;//聊天界面

    BackgroundThread* work_background;//负责处理某些http回调信息，如保存服务器发送的图片
    QThread *work_background_thread;//与work_background绑定的线程

    ChatService* chat_service;//负责接受与发送消息的类
    QThread *chat_service_thread;//与chat_service绑定的线程

    void initDatabase();//初始化sqlite数据库
    void saveFriendInfo(QJsonArray friendList);
};

#endif // MAINWINDOW_H
